package com.zy.swagger.service.sys;

import com.zy.swagger.dto.DingDeptDTO;
import com.zy.swagger.dto.DingUserDTO;

import java.util.List;
import java.util.Map;

/**
 * description 钉钉接口服务接口
 *
 * @author ZY
 * @date 2021年04月03日 20:50
 **/

public interface DingTalkService {

    /**
     * 获取钉钉token
     * @return 返回钉钉接口token
     */
    String getDingToken();

    /**
     * 获取钉钉部门集合
     * @return 返回钉钉所有部门集合
     */
    List<DingDeptDTO> getDingDeptList();

    /**
     * 根据部门ID获取其子部门ID集合
     * @param deptId 部门ID
     * @param flag 是否获取部的所有子部门ID true:是 false:否
     * @return 返回子部门ID集合
     */
    List<Integer> getDingSubDeptIdList(Integer deptId, Boolean flag);

    /**
     * 根据钉钉部门ID查询部门下面的人员
     * @param deptId 部门ID
     * @param flag 是否获取所有子级部门的人员 true:是 false:否
     * @return 返回部门下面人员集合
     */
    List<DingUserDTO> getDingUserList(Integer deptId, Boolean flag);

    /**
     * 查询某个部门某年某月的加班餐补明细
     *
     * @param deptName 部门名称
     * @param deptId 部门ID
     * @param year 年
     * @param month 月
     * @return 返回该部门加班补贴明细
     */
    Map<String, List<List<String>>> getOverTimeAttendList(String deptName, Integer deptId, Integer year, Integer month) throws Exception;
}
